package sh.grapendaal.tsuushin.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * This annotation marks the method it's used on as a method that handles the
 * command as specified by the trigger property.
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD })
public @interface Command {
	/**
	 * The trigger for the command. This is the first word of an incoming
	 * message.
	 */
	String trigger();

	/**
	 * The permission needed to execute this command. By default the command is
	 * public, i.e. usable by anyone.
	 */
	String permission() default "";
}
